草庐IT

Qt软件崩溃定位到源代码位置的方法

Qt软件崩溃现象如果写好了软件拿给别人用,当软件出现BUG时,则无法定位到出错位置,因此需要定位到错误位置,记录log文件;Qt编写一个槽函数:voiddebugLearn::on_debugBtn(){ inta=1; intb=0; intc=a/b;}在代码调试过程中可以定位到当软件发布以后,便无法在编译器内定位到了,会出现如下情况:解决方案下载dll文件:定位崩溃位置dll将CrashDebugUtilx64.dll这个文件,然后放到可执行程序文件夹下在源代码中添加#includedebugLearn::debugLearn(QWidget*parent):QWidget(parent

V4L2+QT+USB摄像头实时显示视频(Arm,Linux,window均适用)

写在开头笔者自从学习了Framebuffer编程和V4L2编程之后,就想实现在LCD屏上显示实时视频笔者学习过正点I.MX6ULinuxC编程中的相关内容,然而原子的例程是针对OV5640摄像头写的,像素格式是RGB然而USB摄像头大多支持MJPEG或者YUYV格式,如果要在屏幕上显示需要进行格式转换,而转换像素格式是需要处理时间的,自然会影响视频帧率笔者尝试写过YUYV2RGB888或者YUYV2RGB565,实际跑起来能明显感受到掉帧;同时,笔者也考虑通过OpenCV来对JPEG或者YUYV进行编解码来显示,然而实际效果也不尽如人意那有没有办法既能实时显示视频也不用进行图像格式转换还能有用

V4L2+QT+USB摄像头实时显示视频(Arm,Linux,window均适用)

写在开头笔者自从学习了Framebuffer编程和V4L2编程之后,就想实现在LCD屏上显示实时视频笔者学习过正点I.MX6ULinuxC编程中的相关内容,然而原子的例程是针对OV5640摄像头写的,像素格式是RGB然而USB摄像头大多支持MJPEG或者YUYV格式,如果要在屏幕上显示需要进行格式转换,而转换像素格式是需要处理时间的,自然会影响视频帧率笔者尝试写过YUYV2RGB888或者YUYV2RGB565,实际跑起来能明显感受到掉帧;同时,笔者也考虑通过OpenCV来对JPEG或者YUYV进行编解码来显示,然而实际效果也不尽如人意那有没有办法既能实时显示视频也不用进行图像格式转换还能有用

Qt使用QAudioInput、QAudioOutput实现局域网的音频通话

本文旨在介绍一下用Qt来实现局域网音频通话功能技术实现QAudioInput、QAudioOutput(Qt采集和播放音频类)QUdpSocket(Qt的UDP通信类)  话不多说,直接上代码链接,想下载的朋友可以直接去gitee下载。  整体的思路就是,读取声卡的数据,通过UDP发送出去,同时也会读取UDP发送过来的流的数据,写入到音频播放设备里进行播放。以下是一些比较简单的对这两个技术点的解释,以及部分代码实现细节。QAudioFormat(音频采样格式)这个类,保存了音频流的参数信息。主要的参数有:采样频率代表,在一秒钟里面,采样的音频的数量。采样频率越大,就代表这个声音的振幅越准确,换

Qt使用QAudioInput、QAudioOutput实现局域网的音频通话

本文旨在介绍一下用Qt来实现局域网音频通话功能技术实现QAudioInput、QAudioOutput(Qt采集和播放音频类)QUdpSocket(Qt的UDP通信类)  话不多说,直接上代码链接,想下载的朋友可以直接去gitee下载。  整体的思路就是,读取声卡的数据,通过UDP发送出去,同时也会读取UDP发送过来的流的数据,写入到音频播放设备里进行播放。以下是一些比较简单的对这两个技术点的解释,以及部分代码实现细节。QAudioFormat(音频采样格式)这个类,保存了音频流的参数信息。主要的参数有:采样频率代表,在一秒钟里面,采样的音频的数量。采样频率越大,就代表这个声音的振幅越准确,换

Qt -- 19模态和非模态对话框

什么是模态和非模态对话框点不了其他的功能和界面。这种对话框就称为模态对话框。还有一些能够操作其他的窗口属于非模态对话框。下面新建一个工程,新建好之后,在设计界面中搭建如下图所示窗体(1、在菜单项中添加文件、编辑的菜单,2、添加一个工具栏,3、在文件菜单中添加菜单项新建,并把新建放到工具栏中。)现在,点击新建按钮,没有任何的反应,因此,我们要给它添加功能,当点击新建按钮后,跳出一个对话框。这就需要用到信号与槽的机制。实现模态对话框在代码中来实现一下。创建对话框,需要添加头文件#include#include"mainwindow.h"#include"ui_mainwindow.h"#inclu

Qt中实时更新UI程序示例

1.概述Qt在运行时会开启一个主线程,如果没有开启工作线程的话,所有界面上的操作都是在主线程,包括更新界面或者处理数据等操作。我们都知道如果处理数据比较多的话,最好是在单独开启一个线程来处理数据,这样就不会影响主线程的运行。2.开发环境Windows系统:Windows10Qt版本:Qt5.15或者Qt63.实时更新UI(非信号与槽)QT中不建议工作线程中更新界面。workthread.h#ifndefWORKTHREAD_H#defineWORKTHREAD_H#includeclassMainWindow;classQLabel;classWorkThread:publicQThread{

Qt中实时更新UI程序示例

1.概述Qt在运行时会开启一个主线程,如果没有开启工作线程的话,所有界面上的操作都是在主线程,包括更新界面或者处理数据等操作。我们都知道如果处理数据比较多的话,最好是在单独开启一个线程来处理数据,这样就不会影响主线程的运行。2.开发环境Windows系统:Windows10Qt版本:Qt5.15或者Qt63.实时更新UI(非信号与槽)QT中不建议工作线程中更新界面。workthread.h#ifndefWORKTHREAD_H#defineWORKTHREAD_H#includeclassMainWindow;classQLabel;classWorkThread:publicQThread{

QT自制TCP客户端

一、TCP简介目前还不是很懂,今后再说TCP,对于这个TCP客户端的编写,用到了两个参数:IP地址端口号二、项目规划编写一个TCP客户端,我们需要先把逻辑功能梳理清除,我也是个初学者,就从最简单的开始,先实现必备的功能,包括:数据的发送和接收。有了一个总体的规划,下面我们就可以动手开始做了,对于QT项目的开发,我们可以把它分成两部分,一部分是界面布局,另一部分是逻辑代码。三、界面布局先上我的布局图:这就是我的整体布局,其中实现了部分功能,HEX显示和发送还有发送新行没有实现,其他都实现了。下面介绍每部分的控件选择:文字显示(除去按钮,按钮可以直接写)参数输入和后面发送框一样的控件状态指示灯状态

QT自制TCP客户端

一、TCP简介目前还不是很懂,今后再说TCP,对于这个TCP客户端的编写,用到了两个参数:IP地址端口号二、项目规划编写一个TCP客户端,我们需要先把逻辑功能梳理清除,我也是个初学者,就从最简单的开始,先实现必备的功能,包括:数据的发送和接收。有了一个总体的规划,下面我们就可以动手开始做了,对于QT项目的开发,我们可以把它分成两部分,一部分是界面布局,另一部分是逻辑代码。三、界面布局先上我的布局图:这就是我的整体布局,其中实现了部分功能,HEX显示和发送还有发送新行没有实现,其他都实现了。下面介绍每部分的控件选择:文字显示(除去按钮,按钮可以直接写)参数输入和后面发送框一样的控件状态指示灯状态